// 第一题
// 实现下面功能:
// add[1][2][3] + 4 // 10
// add[10][20] + 30 // 60
// add[1000][2000][3000] + 40000 //10000

// 核心思想:
// 1 属性访问时进行属性捕获 进行相加运算
// 2 属性访问使用捕获器 proxy
// 3 加号进行对象的隐式转化 先调用 Symbol.toPrimitive
const target = {
    sum: 0
}
const add = new Proxy(target, {
    get: function(target, property, receiver) {
        if (property === Symbol.toPrimitive) {
            let temp = target.sum;
            target.sum = 0;
            return () => temp;
        } else {
            target.sum += Number(property);
            return receiver;
        }
    },
    set: function*(target, property, newValue, receiver) {

    }
})

const r1 = add[1][2][3] + 4;
const r2 = add[10][20] + 30;
const r3 = add[1000][2000][3000] + 40000;
console.log(r1);
console.log(r2);
console.log(r3);

